home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2007 December / PCWKCD1207B.iso / Windows marzen / Maxthon 2.0.4 / mx_2.0.4.5799.exe / template / _shared / js / func.js next >
Text File  |  2007-09-20  |  13KB  |  663 lines

  1. function $clone(_1){
  2. if(typeof _1!="object"){
  3. return _1;
  4. }
  5. var _2;
  6. if(_1 instanceof Array){
  7. _2=[];
  8. for(var i=0;i<_1.length;i++){
  9. if(typeof _1[i]=="object"){
  10. _2[i]=$clone(_1[i]);
  11. }else{
  12. _2[i]=_1[i];
  13. }
  14. }
  15. }else{
  16. _2={};
  17. for(i in _1){
  18. if(typeof _1[i]=="object"){
  19. _2[i]=$clone(_1[i]);
  20. }else{
  21. _2[i]=_1[i];
  22. }
  23. }
  24. }
  25. return _2;
  26. };
  27. function $extend(_4,_5,_6){
  28. var _7=$clone(_4);
  29. if(typeof _7!="object"){
  30. return _7;
  31. }
  32. for(var _8 in _5){
  33. if(_7[_8]==undefined||_6){
  34. _7[_8]=_5[_8];
  35. }
  36. }
  37. return _7;
  38. };
  39. function $toJSON(_9,_a){
  40. var _b={"indent":0,"indentText":"","delimiter":"","includeFunction":false};
  41. _a=_a?$extend(_a,_b):_b;
  42. var _c="";
  43. var _d="";
  44. if(_a["indentText"]!=""){
  45. _a["indent"]++;
  46. _d=new Array(_a["indent"]).join(_a["indentText"]);
  47. _c=new Array(_a["indent"]+1).join(_a["indentText"]);
  48. }
  49. switch(typeof (_9)){
  50. case "object":
  51. if(_9 instanceof Array){
  52. var _e=[];
  53. for(var i=0;i<_9.length;i++){
  54. var t=$toJSON(_9[i],_a);
  55. if(t){
  56. _e.push(_c+t);
  57. }
  58. }
  59. _e="["+_a["delimiter"]+_e.join(","+_a["delimiter"])+_a["delimiter"]+_d+"]";
  60. }else{
  61. if(_9 instanceof Date){
  62. return "new Date("+_9.getFullYear()+","+_9.getMonth()+","+_9.getDate()+","+_9.getHours()+","+_9.getMinutes()+","+_9.getSeconds()+","+_9.getMilliseconds()+")";
  63. }else{
  64. if(_9 instanceof Object){
  65. var _e=[];
  66. for(label in _9){
  67. var l=$toJSON(label);
  68. var t=$toJSON(_9[label],_a);
  69. if(t){
  70. _e.push(_c+l+": "+t);
  71. }
  72. }
  73. _e="{"+_a["delimiter"]+_e.join(","+_a["delimiter"])+_a["delimiter"]+_d+"}";
  74. }
  75. }
  76. }
  77. break;
  78. case "string":
  79. var str=_9;
  80. str=str.replace(/\\"/g,"\\\\\"");
  81. str=str.replace(/\r/g,"\\r");
  82. str=str.replace(/\t/g,"\\t");
  83. str=str.replace(/\n/g,"\\n");
  84. str=str.replace(/\f/g,"\\f");
  85. str=str.replace(/\"/g,"\\\"");
  86. _e="\""+str+"\"";
  87. break;
  88. case "number":
  89. _e=isFinite(_9)?String(_9):"null";
  90. break;
  91. case "boolean":
  92. _e=_9.toString();
  93. break;
  94. case "function":
  95. if(_a["includeFunction"]){
  96. _e=_9.toString();
  97. }else{
  98. _e="";
  99. }
  100. break;
  101. case "null":
  102. _e="null";
  103. break;
  104. }
  105. return _e;
  106. };
  107. function $fromJSON(_13){
  108. var obj;
  109. try{
  110. obj=eval("("+_13+")");
  111. }
  112. catch(e){
  113. obj=null;
  114. }
  115. return obj;
  116. };
  117. function $dump(obj){
  118. alert($toJSON(obj,{"indentText":"  ","delimiter":"\n"}));
  119. };
  120. String.prototype.$repeat=function(_16){
  121. return new Array(_16+1).join(this);
  122. };
  123. String.prototype.$trim=function(){
  124. return this.replace(/^[\s\n\t]*|[\s\n\t]*$/g,"");
  125. };
  126. String.prototype.$charWidthAt=function(_17){
  127. if(this.length<1){
  128. return 0;
  129. }
  130. if(!_17){
  131. _17=0;
  132. }
  133. var _18=this.charCodeAt(_17);
  134. if(_18<32){
  135. return 0;
  136. }
  137. if((_18>=4352&&_18<=4447)||(_18==9001||_18==9002)||(_18>=11904&&_18<=12350)||(_18>=12353&&_18<=19893)||(_18>=19968&&_18<=42182)||(_18>=44032&&_18<=57343)||(_18>=63744&&_18<=64217)||(_18>=65040&&_18<=65049)||(_18>=65072&&_18<=65131)||(_18>=65281&&_18<=65376)||(_18>=65504&&_18<=65518)){
  138. return 2;
  139. }
  140. return 1;
  141. };
  142. String.prototype.$cut=function(_19,_1a){
  143. var _1b={"addPoints":true,"pointsText":"...","reverse":false};
  144. _1a=_1a?$extend(_1a,_1b):_1b;
  145. var _1c=this.valueOf();
  146. var _1d=0;
  147. if(!_1a["reverse"]){
  148. for(var i=0;(_1d<=_19)&&(i<this.length);i++){
  149. _1d+=this.$charWidthAt(i);
  150. }
  151. _1c=_1c.substring(0,i);
  152. }else{
  153. for(var i=this.length-1;(_1d<=_19)&&(i>-1);i--){
  154. _1d+=this.$charWidthAt(i);
  155. }
  156. _1c=_1c.substring(_1c.length-i,_1c.length);
  157. }
  158. if(_1a["addPoints"]&&_1c.length!=this.length){
  159. if(!_1a["reverse"]){
  160. _1c+=_1a["pointsText"];
  161. }else{
  162. _1c=_1a["pointsText"]+_1c;
  163. }
  164. }
  165. return _1c;
  166. };
  167. String.prototype.$encodeHTML=function(_1f){
  168. var _20=this.valueOf();
  169. _20=_20.replace(/\&/g,"&");
  170. _20=_20.replace(/\>/g,">");
  171. _20=_20.replace(/\</g,"<");
  172. _20=_20.replace(/\"/g,""");
  173. _20=_20.replace(/\'/g,"'");
  174. if(!_1f){
  175. _20=_20.replace(/\n/g,"<br/>");
  176. }
  177. return _20;
  178. };
  179. String.prototype.$stripHTML=function(){
  180. var _21=this.valueOf();
  181. _21=_21.replace(/\<[^\<\>]+\>/g,"");
  182. _21=_21.replace(/ +/g," ");
  183. _21=_21.replace(/\n+/g,"\n");
  184. return _21;
  185. };
  186. String.prototype.$sanitizeHTML=function(_22){
  187. if(_22==undefined){
  188. _22={"br":{},"b":{},"strong":{},"u":{},"em":{},"ul":{},"ol":{},"li":{},"blockquote":{"style":{invalid:"expression|script"}},"p":{"align":{valid:"left|center|right"},"style":{invalid:"expression|script"}},"span":{"style":{invalid:"expression|script"}},"div":{"align":{valid:"left|center|right"},"style":{invalid:"expression|script"}},"a":{"href":{valid:"^(http|https|ftp|mailto):"},"title":{},"target":{}},"img":{"src":{valid:"^(http|ftp):"},"alt":{}}};
  189. }
  190. var _23=this.valueOf();
  191. _23=_23.replace(/[\x00-\x1f\x7f]/ig,"");
  192. var re=/\<([^\/].*?)(\/)?\>/ig;
  193. while((arrMatch=re.exec(_23))!=null){
  194. var _25=arrMatch[1].length;
  195. var _26=arrMatch[1].split(" ");
  196. var _27="";
  197. for(var _28 in _22){
  198. var _29=_26[0];
  199. if(_22[_29]){
  200. for(var i=1;i<_26.length;i++){
  201. var pos=_26[i].indexOf("=");
  202. if(pos<1){
  203. _26.splice(i,1);
  204. i--;
  205. }else{
  206. var _2c=_26[i].substr(0,pos);
  207. var _2d=_26[i].substr(pos+1,_26[i].length);
  208. if(_2d.indexOf("\"")==0||_2d.indexOf("'")==0){
  209. _2d=_2d.substr(1,_2d.length);
  210. _2d=_2d.substr(0,_2d.length-1);
  211. }
  212. if(_22[_29][_2c]){
  213. if(_22[_29][_2c].valid){
  214. var _2e=new RegExp(_22[_29][_2c].valid,"ig");
  215. if(!_2e.test(_2d)){
  216. _26.splice(i,1);
  217. i--;
  218. continue;
  219. }
  220. }
  221. if(_22[_29][_2c].invalid){
  222. var _2e=new RegExp(_22[_29][_2c].invalid,"ig");
  223. if(_2e.test(_2d)){
  224. _26.splice(i,1);
  225. i--;
  226. continue;
  227. }
  228. }
  229. _2d=_2d.replace(/\"/ig,""");
  230. _26[i]=_2c+"=\""+_2d+"\"";
  231. }else{
  232. _26.splice(i,1);
  233. i--;
  234. }
  235. }
  236. }
  237. _27="<"+_26.join(" ")+arrMatch[2]+">";
  238. }else{
  239. _27="";
  240. }
  241. }
  242. _23=_23.replace(arrMatch[0],_27);
  243. re.lastIndex+=_27.length-_25;
  244. }
  245. return _23;
  246. };
  247. String.prototype.$sanitizeURL=function(){
  248. var _2f=this.valueOf();
  249. var re=/^(.*?)script:/ig;
  250. if(re.test(_2f)){
  251. return "";
  252. }
  253. re=/^about:/ig;
  254. if(re.test(_2f)){
  255. return "";
  256. }
  257. _2f=_2f.replace(/</ig,"%3C");
  258. _2f=_2f.replace(/>/ig,"%3E");
  259. _2f=_2f.replace(/ /ig,"%20");
  260. return _2f;
  261. };
  262. String.prototype.$safeQuote=function(_31){
  263. var _32=this.valueOf();
  264. if(_31){
  265. _32=_32.replace(/\'/ig,"\\'");
  266. }else{
  267. _32=_32.replace(/\"/ig,"\\\"");
  268. }
  269. return _32;
  270. };
  271. $Date={};
  272. $Date.names={};
  273. $Date.names.weekday=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
  274. $Date.names.weekdayAbbr=["Sun","Mon","Tue","Wedy","Thu","Fri","Sat"];
  275. $Date.names.month=["January","February","March","April","May","June","July","August","September","October","November","December"];
  276. $Date.names.monthAbbr=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
  277. $Date.names.ampm=["AM","PM"];
  278. $Date.names.ampmAbbr=["A","P"];
  279. $Date.parse=function(_33){
  280. var _34=new Date();
  281. var _35=0;
  282. var _36;
  283. var _37;
  284. _33=_33.split(" ");
  285. if(_33.length==2){
  286. _36=_33[0];
  287. _37=_33[1];
  288. }else{
  289. if(_33.length==1){
  290. _36=_33[0];
  291. _37="";
  292. }else{
  293. return null;
  294. }
  295. }
  296. _36=_36.split("-");
  297. if(_36.length!=3){
  298. return null;
  299. }else{
  300. _35=parseInt(_36[0],10);
  301. if(_35!=NaN){
  302. _34.setFullYear(_35);
  303. }
  304. _35=parseInt(_36[1],10);
  305. if(_35!=NaN){
  306. _34.setMonth(_35-1);
  307. }
  308. _35=parseInt(_36[2],10);
  309. if(_35!=NaN){
  310. _34.setDate(_35);
  311. }
  312. }
  313. _37=_37.split(":");
  314. if(_37.length==3){
  315. _35=parseInt(_37[0],10);
  316. if(_35!=NaN){
  317. _34.setHours(_35);
  318. }
  319. _35=parseInt(_37[1],10);
  320. if(_35!=NaN){
  321. _34.setMinutes(_35);
  322. }
  323. _35=parseInt(_37[2],10);
  324. if(_35!=NaN){
  325. _34.setSeconds(_35);
  326. }
  327. }
  328. return _34;
  329. };
  330. Date.prototype.$toString=function(_38,_39){
  331. var _3a={"names":$Date.names,"toUTC":false,"UTC":""};
  332. _39=_39?$extend(_39,_3a):_3a;
  333. if(!_38){
  334. _38="CWA14051-1";
  335. }
  336. switch(_38){
  337. case "CWA14051-1":
  338. _38="yyyy-MM-dd HH:mm:ss";
  339. break;
  340. case "RFC1123":
  341. _38="ddd, dd MMM yyyy HH:mm:ss zzz";
  342. _39["toUTC"]=true;
  343. _39["UTC"]="GMT";
  344. break;
  345. case "W3C":
  346. case "ISO8601":
  347. _38="yyyy-MM-ddTHH:mm:sszzzz";
  348. _39["UTC"]="Z";
  349. break;
  350. }
  351. var _3b=new Date(Number(this));
  352. if(_39["toUTC"]){
  353. _3b.setMinutes((_3b.getMinutes()+_3b.getTimezoneOffset()));
  354. }
  355. var _3c={};
  356. _3c["d"]=_3b.getDate();
  357. _3c["dd"]=_3c["d"]<10?"0"+_3c["d"]:_3c["d"];
  358. _3c["ddd"]=_39["names"].weekdayAbbr[_3b.getDay()];
  359. _3c["dddd"]=_39["names"].weekday[_3b.getDay()];
  360. _3c["M"]=_3b.getMonth()+1;
  361. _3c["MM"]=_3c["M"]<10?"0"+_3c["M"]:_3c["M"];
  362. _3c["MMM"]=_39["names"].monthAbbr[_3b.getMonth()];
  363. _3c["MMMM"]=_39["names"].month[_3b.getMonth()];
  364. _3c["yyyy"]=_3b.getFullYear();
  365. _3c["y"]=_3c["yyyy"]%100;
  366. _3c["yy"]=_3c["y"]<10?"0"+_3c["y"]:_3c["y"];
  367. _3c["H"]=_3b.getHours();
  368. _3c["HH"]=_3c["H"]<10?"0"+_3c["H"]:_3c["H"];
  369. _3c["h"]=_3c["H"]>12?_3c["H"]-12:_3c["H"];
  370. _3c["hh"]=_3c["h"]<10?"0"+_3c["h"]:_3c["h"];
  371. _3c["t"]=_3c["H"]>12?_39["names"].ampm[1]:_39["names"].ampm[0];
  372. _3c["tt"]=_3c["H"]>12?_39["names"].ampmAbbr[1]:_39["names"].ampmAbbr[0];
  373. _3c["m"]=_3b.getMinutes();
  374. _3c["mm"]=_3c["m"]<10?"0"+_3c["m"]:_3c["m"];
  375. _3c["s"]=_3b.getSeconds();
  376. _3c["ss"]=_3c["s"]<10?"0"+_3c["s"]:_3c["s"];
  377. _3c["f"]=_3b.getMilliseconds();
  378. var _3d=_3b.getTimezoneOffset()<0?"+":"-";
  379. var _3e=Math.abs(Math.round(_3b.getTimezoneOffset()/60));
  380. var _3f=_3b.getTimezoneOffset()%60;
  381. _3c["z"]=_3d+_3e;
  382. _3c["zz"]=_3d+(_3e<10?"0"+_3e:_3e);
  383. _3c["zzz"]=_3c["zz"]+(_3f<10?"0"+_3f:_3f);
  384. _3c["zzzz"]=_3c["zz"]+":"+(_3f<10?"0"+_3f:_3f);
  385. if(_39["toUTC"]||(_39["UTC"]!=""&&_3b.getTimezoneOffset()==0)){
  386. _3c["z"]=_3c["zz"]=_3c["zzz"]=_3c["zzzz"]=_39["UTC"];
  387. }
  388. var _40="";
  389. var pos=0;
  390. while(pos<_38.length){
  391. var _42=_38.charAt(pos);
  392. var _43="";
  393. while((_38.charAt(pos)==_42)&&(pos<_38.length)){
  394. _43+=_42;
  395. pos++;
  396. }
  397. if(_3c[_43]){
  398. _40+=_3c[_43];
  399. }else{
  400. _40+=_43;
  401. }
  402. }
  403. return _40;
  404. };
  405. Array.prototype.$contains=function(_44){
  406. return this.$indexOf(_44)>-1?true:false;
  407. };
  408. Array.prototype.$indexOf=function(_45){
  409. for(var i=0;i<this.length;i++){
  410. if(this[i]==_45){
  411. return i;
  412. }
  413. }
  414. return -1;
  415. };
  416. Array.prototype.$sort=function(key,_48){
  417. var _49={"compareLength":false,"descending":false};
  418. _48=_48?$extend(_48,_49):_49;
  419. if(key==undefined){
  420. this.sort();
  421. }else{
  422. this.sort(function(_4a,_4b){
  423. var t1=_4a[key];
  424. var t2=_4b[key];
  425. if(_48["compareLength"]){
  426. if(t1.length>t2.length){
  427. return 1;
  428. }
  429. if(t1.length<t2.length){
  430. return -1;
  431. }
  432. }
  433. if(t1>t2){
  434. return 1;
  435. }
  436. if(t1==t2){
  437. return 0;
  438. }
  439. return -1;
  440. });
  441. }
  442. if(_48["descending"]){
  443. this.reverse();
  444. }
  445. };
  446. function $id(){
  447. var _4e;
  448. if(arguments.length==1){
  449. _4e=document.getElementById(arguments[0]);
  450. if(!_4e){
  451. _4e=null;
  452. }
  453. }else{
  454. _4e=[];
  455. for(var i=0;i<arguments.length;i++){
  456. var obj=document.getElementById(arguments[i]);
  457. if(obj){
  458. _4e.push(obj);
  459. }
  460. }
  461. if(_4e.length<1){
  462. _4e=null;
  463. }
  464. }
  465. return _4e;
  466. };
  467. function $name(_51){
  468. var _52=[];
  469. for(var i=0;i<arguments.length;i++){
  470. var _54=document.getElementsByName(arguments[i]);
  471. _52=_52.concat(_54);
  472. }
  473. if(_54.length<1){
  474. _54=null;
  475. }
  476. return _54;
  477. };
  478. function $event(_55,_56,obj,_58){
  479. if(!obj){
  480. obj=window;
  481. }
  482. if(!_56||!_58){
  483. return;
  484. }
  485. if(_55=="+"){
  486. if(window.attachEvent){
  487. obj.attachEvent("on"+_56,_58);
  488. }else{
  489. obj.addEventListener(_56,_58,false);
  490. }
  491. }else{
  492. if(window.detachEvent){
  493. obj.detachEvent("on"+_56,_58);
  494. }else{
  495. obj.removeEventListener(_56,_58,false);
  496. }
  497. }
  498. };
  499. function $write(_59,id,_5b){
  500. if(id){
  501. var obj=$id(id);
  502. if(obj){
  503. if(_5b){
  504. obj.innerHTML+=_59;
  505. }else{
  506. obj.innerHTML=_59;
  507. }
  508. return;
  509. }
  510. }
  511. document.write(_59);
  512. };
  513. var $langDefaultSection="";
  514. function $lang(_5d,_5e){
  515. if(!_5e){
  516. _5e=$langDefaultSection;
  517. }
  518. try{
  519. var str=external.max_Lang(_5e,_5d);
  520. }
  521. catch(e){
  522. str="";
  523. }
  524. if(str==""){
  525. str="["+_5d+"@"+_5e+"]";
  526. }
  527. return str;
  528. };
  529. function $writeLang(_60,_61){
  530. document.write($lang(_60,_61));
  531. };
  532. function $parseQueryString(){
  533. var _62=String(document.location);
  534. var _63={};
  535. var pos=_62.indexOf("?");
  536. if(pos<0){
  537. return _63;
  538. }
  539. var _65=_62.substr(pos+1,_62.length);
  540. _65=_65.split("&");
  541. for(var i=0;i<_65.length;i++){
  542. pos=_65[i].indexOf("=");
  543. var key=_65[i].substr(0,pos);
  544. var _68=_65[i].substr(pos+1,_65[i].length);
  545. _63[key]=_68;
  546. }
  547. return _63;
  548. };
  549. function $cookies(_69,_6a,ttl){
  550. if(_6a==undefined){
  551. var _6c=document.cookie.split("; ");
  552. for(var i=0;i<_6c.length;i++){
  553. var _6e=_6c[i].split("=");
  554. if(_6e[0]==_69){
  555. return _6e[1];
  556. }
  557. }
  558. return null;
  559. }else{
  560. if(_6a==null){
  561. document.cookie=_69+"=;expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/";
  562. }else{
  563. if(!ttl){
  564. ttl=30;
  565. }
  566. var _6f=new Date();
  567. _6f.setTime(_6f.getTime()+(ttl*24*60*60*1000));
  568. document.cookie=_69+"="+_6a+"; expires="+_6f.toGMTString()+"; path=/";
  569. }
  570. }
  571. };
  572. function $toggleElement(id,_71,_72){
  573. var obj=document.getElementById(id);
  574. if(!obj){
  575. return false;
  576. }
  577. if(!_72){
  578. _72="block";
  579. }
  580. switch(_71){
  581. case "show":
  582. obj.style.display=_72;
  583. return true;
  584. break;
  585. case "hide":
  586. obj.style.display="none";
  587. return false;
  588. break;
  589. default:
  590. if(obj.style.display!="none"){
  591. obj.style.display="none";
  592. return false;
  593. }else{
  594. obj.style.display=_72;
  595. return true;
  596. }
  597. }
  598. };
  599. function $decodeHTMLEntities(_74){
  600. var ta=document.createElement("textarea");
  601. ta.innerHTML=_74.replace(/</g,"<").replace(/>/g,">");
  602. _74=ta.value;
  603. delete ta;
  604. return _74;
  605. };
  606. function $pageLinks(_76,_77,_78,_79,_7a){
  607. if(_79==undefined){
  608. _79=5;
  609. }
  610. if(_7a==undefined){
  611. _7a={};
  612. _7a["separator"]=" ";
  613. _7a["normal"]="<a href=\"?page=%page\"> %page </a>";
  614. _7a["active"]="<a href=\"#\" class=\"buttons-active\"> %page </a>";
  615. _7a["prev"]="<a href=\"?page=%page\"> ‹ </a>";
  616. _7a["next"]="<a href=\"?page=%page\"> › </a>";
  617. _7a["first"]="<a href=\"?page=%page\"> « </a>";
  618. _7a["last"]="<a href=\"?page=%page\"> » </a>";
  619. }
  620. var _7b=Math.floor((_76-1)/_77)+1;
  621. var _7c="";
  622. var _7d=_78-Math.floor(_79/2);
  623. var _7e=_78+Math.floor(_79/2);
  624. if(_7d<=0){
  625. _7d=1;
  626. _7e=_79;
  627. }
  628. if(_7e>_7b){
  629. _7e=_7b;
  630. _7d=_7b-_79;
  631. }
  632. if(_7d<=0){
  633. _7d=1;
  634. }
  635. if(_7b==1){
  636. _7c=_7a["active"].replace(/\%page/ig,"1");
  637. }else{
  638. if(_7d>1){
  639. _7c+=_7a["first"].replace(/\%page/ig,"1")+_7a["separator"];
  640. }
  641. if(_78>1){
  642. _7c+=_7a["prev"].replace(/\%page/ig,(_78-1))+_7a["separator"];
  643. }
  644. for(var i=_7d;i<=_7e;i++){
  645. if(_78==i){
  646. _7c+=_7a["active"].replace(/\%page/ig,i)+_7a["separator"];
  647. }else{
  648. if(i<=_7b){
  649. _7c+=_7a["normal"].replace(/\%page/ig,i)+_7a["separator"];
  650. }
  651. }
  652. }
  653. if(_78<_7b){
  654. _7c+=_7a["next"].replace(/\%page/ig,(_78+1));
  655. }
  656. if(_7e<_7b){
  657. _7c+=_7a["separator"]+_7a["last"].replace(/\%page/ig,_7b);
  658. }
  659. }
  660. return _7c;
  661. };
  662.  
  663.